package com.adobe.net;

extern class URI {
	var authority : String;
	var fragment : String;
	var nonHierarchical : String;
	var password : String;
	var path : String;
	var port : String;
	var query : String;
	var queryRaw : String;
	var scheme : String;
	var username : String;
	function new(?uri : String) : Void;
	function chdir(reference : String, ?escape : Bool) : Bool;
	function copyURI(uri : URI) : Void;
	function forceEscape() : Void;
	function getCommonParent(uri : URI, ?caseSensitive : Bool) : URI;
	function getDefaultPort() : String;
	function getExtension(?minusDot : Bool) : String;
	function getFilename(?minusExtension : Bool) : String;
	function getQueryByMap() : Dynamic;
	function getQueryValue(name : String) : String;
	function getRelation(uri : URI, ?caseSensitive : Bool) : Int;
	function isAbsolute() : Bool;
	function isDirectory() : Bool;
	function isHierarchical() : Bool;
	function isOfFileType(extension : String) : Bool;
	function isOfType(scheme : String) : Bool;
	function isRelative() : Bool;
	function isValid() : Bool;
	function makeAbsoluteURI(base_uri : URI) : Bool;
	function makeRelativeURI(base_uri : URI, ?caseSensitive : Bool) : Bool;
	function setParts(schemeStr : String, authorityStr : String, portStr : String, pathStr : String, queryStr : String, fragmentStr : String) : Void;
	function setQueryByMap(map : Dynamic) : Void;
	function setQueryValue(name : String, value : String) : Void;
	function toDisplayString() : String;
	function toString() : String;
	function unknownToURI(unknown : String, ?defaultScheme : String) : Bool;
	private var _authority : String;
	private var _fragment : String;
	private var _nonHierarchical : String;
	private var _password : String;
	private var _path : String;
	private var _port : String;
	private var _query : String;
	private var _relative : Bool;
	private var _scheme : String;
	private var _username : String;
	private var _valid : Bool;
	private var hierState : Bool;
	private function constructURI(uri : String) : Bool;
	private function initialize() : Void;
	private function joinPath(parts : Array<Dynamic>, isAbs : Bool, isDir : Bool) : String;
	private function parseURI(uri : String) : Bool;
	private function toStringInternal(forDisplay : Bool) : String;
	private function validateURI() : Bool;
	private function verifyAlpha(str : String) : Bool;
	static var CHILD : Int;
	static var EQUAL : Int;
	static var NOT_RELATED : Int;
	static var PARENT : Int;
	static var UNKNOWN_SCHEME : String;
	static var URIbaselineEscape : String;
	static var URImustEscape : String;
	static var URInonHierEscape : String;
	static var URIpathEscape : String;
	static var URIqueryEscape : String;
	static var URIqueryPartEscape : String;
	static var resolver : IURIResolver;
	static function escapeChars(unescaped : String) : String;
	static function fastEscapeChars(unescaped : String, bitmap : URIEncodingBitmap) : String;
	static function queryPartEscape(unescaped : String) : String;
	static function queryPartUnescape(escaped : String) : String;
	static function unescapeChars(escaped : String) : String;
}
